#pragma once

struct tInputState
{
  unsigned int miKey; //Key for keyboards
  unsigned int miButton; //Button for mouses and joysticks
  unsigned int miState; //State of the button
  unsigned int miPosx; //Position X of the mouse
  unsigned int miPosy; //Position Y of the mouse
  bool mbPressed; //Indicate if the key is pressed or depressed
};
//Virtual base class for input devices
class cGenericDevice
{
  public:
    virtual void Init() = 0;
    virtual void Deinit(void) = 0;
    virtual void Update(struct tInputState) = 0;
    virtual float Check(unsigned luiEntry) = 0;
    virtual bool IsValid(void) = 0;
};
